<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    // 设计哈希函数
    // 1.将字符串转成比较大的数字: hashCole
    // 2.将大的数字hashCole压缩到数组范围(大小)之内
    function hashFunc (str, size) {
        // 1.定义hashCode变量
        var hashCode = 0

        // 2.霍纳算法，来计算hashCodede值
        for (var i = 0; i < str.length; i++) {
            // 获取当前字符的unicode编码
            // str.charCodeAt(i)
            // (anx + an-1)x
            hashCode = 37 * hashCode + str.charCodeAt(i)
        }

        // 3.取余操作
        var index = hashCode % size

        return index
    }


    // 测试哈希函数
    alert(hashFunc('abc', 7))
    alert(hashFunc('cba', 7))
    alert(hashFunc('nba', 7))
    alert(hashFunc('mba', 7))
</script>
</body>
</html>
